// Seteo general
function getSettings(obj){
return {
flash_url : obj.url_final+"js/swfupload/swfupload.swf",
upload_url: obj.url_final+"ajax/upload_swf.php",
post_params: obj.post,
file_size_limit : obj.peso,
file_types : obj.tipos,
file_types_description : "",
file_upload_limit : obj.upload_limit,
file_queue_limit : 0,
custom_settings : {
nombre : obj.nombre,
div_aviso: obj.nombre+"_aviso",
progressTarget : obj.upload_progress,
cancelButtonId : "cancelar_archivos",
peso_permitido : obj.peso,
uploaded : false
},
// Button settings
button_image_url: obj.url_final+"img/btn90.png",
button_width: "90",
button_height: "22",
button_placeholder_id: "boton_"+obj.nombre+"_swfu",
button_text: ""+obj.texto_btn+"",
button_text_style: ".theFont { text-align: center; width: 90px; font-family: Arial, Helvetica; }",
button_action : obj.accion,
debug: false,
file_dialog_start_handler: fileDialogStart,
file_queued_handler : fileQueued,
file_queue_error_handler : fileQueueError,
file_dialog_complete_handler : obj.file_dialog_complete_handler,
upload_start_handler : uploadStart,
upload_progress_handler : uploadProgress,
upload_error_handler : uploadError,
upload_success_handler : uploadSuccess,
upload_complete_handler : obj.upload_complete_handler
};
}
// acción al inicio de selección de archivo
function fileDialogStart() {
$("#"+this.customSettings.div_aviso).html("");
$("#"+this.customSettings.div_aviso).removeClass("aviso");
this.cancelUpload();
}
// acción al finalizar la selección de archivos directo
function fileDialogComplete_directo(numFilesSelected, numFilesQueued) {
try {
if (numFilesSelected > 0) {
$("#"+this.customSettings.cancelButtonId).removeAttr("disabled");
}
this.startUpload();
} catch (ex) {
this.debug(ex);
}
}
// acción al finalizar la selección de archivos diferido
function fileDialogComplete(numFilesSelected, numFilesQueued) {
try {
// activo el botón de cancelar
if (numFilesSelected > 0) {
$("#"+this.customSettings.cancelButtonId).removeAttr("disabled");
}
} catch (ex) {
this.debug(ex);
}
}
// archivo en espera
function fileQueued(file) {
try {
// barra de progreso
var progress = new FileProgress(file, this.customSettings.progressTarget, this.customSettings.nombre);
progress.setStatus("");
progress.toggleCancel(true, this);
// seteo el nombre del archivo a grabar
$("input[name="+this.customSettings.nombre+"]").val(file.name);
// borro archivo temporario anterior si existe
if($("#"+this.customSettings.nombre+"_temporario").val()==""){
$("#"+this.customSettings.nombre+"_temporario").val(file.name);
} else {
archivo_a_borrar = $("#"+this.customSettings.nombre+"_temporario").val();
borro_temporario(archivo_a_borrar);
// seteo el nuevo archivo
$("#"+this.customSettings.nombre+"_temporario").val(file.name);
}
// BANDERAS
// si el nombre del archivo original está vacío, entonces es un alta (1)
if($("#"+this.customSettings.nombre+"_original").val()==""){
$("#"+this.customSettings.nombre+"_bandera").val(1);
// si el archivo tiene el mismo nombre que el original entonces es reemplazo (3)
} else if (file.name==$("#"+this.customSettings.nombre+"_original").val()){
$("#"+this.customSettings.nombre+"_bandera").val(3);
$("#boton_"+this.customSettings.nombre+"_borrado").hide();
// si el archivo tiene distinto nombre que el original, entonces es modificación (2)
} else {
$("#"+this.customSettings.nombre+"_bandera").val(2);
$("#boton_"+this.customSettings.nombre+"_borrado").hide();
} // fin discriminación de bandera
} catch (ex) {
this.debug(ex);
}
}
// acción al iniciar la subida
function uploadStart(file) {
try {
// oculto botones
$(".botones").hide();
// apago las solapas
/*if($("#solapas_tabs")){
$("#solapas_tabs").tabs( "option", "disabled", true );
}*/
// barra de progreso
var progress = new FileProgress(file, this.customSettings.progressTarget, this.customSettings.nombre);
var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);
var kb_subidos = Math.ceil(bytesLoaded / 1024)+" KB";
var kb_totales = Math.ceil(bytesTotal / 1024)+" KB";
var texto_status = "";
texto_status = texto_status.replace("{total}", 0);
texto_status = texto_status.replace("{subidos}", 0);
texto_status = texto_status.replace("{porcentaje}", 0);
// limpio el previo
$("#preview_"+this.customSettings.nombre).html("");
progress.setStatus(texto_status);
progress.toggleCancel(true, this);
}
catch (ex) {}
return true;
}
// acción de progreso de carga
function uploadProgress(file, bytesLoaded, bytesTotal) {
try {
// apago las solapas
/*if($("#solapas_tabs")){
$("#solapas_tabs").tabs( "option", "disabled", true );
}*/
// barra de progreso
var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);
var kb_subidos = Math.ceil(bytesLoaded / 1024)+" KB";
var kb_totales = Math.ceil(bytesTotal / 1024)+" KB";
var texto_status = "";
texto_status = texto_status.replace("{total}", kb_totales);
texto_status = texto_status.replace("{subidos}", kb_subidos);
texto_status = texto_status.replace("{porcentaje}", percent);
var progress = new FileProgress(file, this.customSettings.progressTarget, this.customSettings.nombre);
progress.setProgress(percent);
progress.setStatus(texto_status);
} catch (ex) {
this.debug(ex);
}
}
// exito en la subida
function uploadSuccess(file, serverData) {
try {
// muestro nuevamente botones
$(".botones").show();
// prendo nuevamente las solapas
/*if($("#solapas_tabs")){
$("#solapas_tabs").tabs( "option", "disabled", true );
}*/
// barra de progreso
var progress = new FileProgress(file, this.customSettings.progressTarget, this.customSettings.nombre);
progress.setComplete();
// mensaje del servidor
msg = serverData.split("||");
mensaje_servidor = ": "+msg[0];
progress.setStatus(mensaje_servidor);
progress.toggleCancel(false);
// cargo el mensaje
$("input[name="+this.customSettings.nombre+"]").val(msg[1]);
// cargo el previo
this.customSettings.previo = msg[2];
} catch (ex) {
this.debug(ex);
}
}
// una vez que terminó la subida
function uploadComplete_directo(file) {
// cargo el previo
$("#preview_"+this.customSettings.nombre).html(this.customSettings.previo);
}
// una vez que terminó la subida diferida
function uploadComplete(file) {
// chequeo la cantidad de archivos preparados
if (this.getStats().files_queued > 0) {
this.startUpload();
} else {
this.customSettings.uploaded = true;
$("#" + this.customSettings.cancelButtonId).attr("disabled","disabled");
var cadena_if = "";
for(i=1;i<=total_archivos;i++){
cadena_if = cadena_if + "swfu_" + archivos[i] + ".customSettings.uploaded === true";
if(i